<!doctype html>



  


<html class="theme-next muse use-motion" lang="zh-Hans">
<head>
  <meta charset="UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>









<meta http-equiv="Cache-Control" content="no-transform" />
<meta http-equiv="Cache-Control" content="no-siteapp" />















  
  
  <link href="/lib/fancybox/source/jquery.fancybox.css?v=2.1.5" rel="stylesheet" type="text/css" />




  
  
  
  

  
    
    
  

  

  

  

  

  
    
    
    <link href="//fonts.googleapis.com/css?family=Lato:300,300italic,400,400italic,700,700italic&subset=latin,latin-ext" rel="stylesheet" type="text/css">
  






<link href="/lib/font-awesome/css/font-awesome.min.css?v=4.6.2" rel="stylesheet" type="text/css" />

<link href="/css/main.css?v=5.1.1" rel="stylesheet" type="text/css" />


  <meta name="keywords" content="Linux," />








  <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico?v=5.1.1" />






<meta name="description" content="&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;用 su 可以切换用户身份，如果每个普通用户都能切换到 root 身份，如果某个用户不小心泄漏了 root 密码，那么系统是非常的不安全的。为了改进这个问题，产生了 sudo 这个命令。&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;使用 sudo 执行一">
<meta name="keywords" content="Linux">
<meta property="og:type" content="article">
<meta property="og:title" content="Linux sudo 详解">
<meta property="og:url" content="https://hcldirgit.github.io/2017/09/03/1. Linux 基础/13. Linux sudo 详解/index.html">
<meta property="og:site_name" content="失落的乐章">
<meta property="og:description" content="&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;用 su 可以切换用户身份，如果每个普通用户都能切换到 root 身份，如果某个用户不小心泄漏了 root 密码，那么系统是非常的不安全的。为了改进这个问题，产生了 sudo 这个命令。&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;使用 sudo 执行一">
<meta property="og:locale" content="zh-Hans">
<meta property="og:updated_time" content="2017-09-01T08:12:41.755Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Linux sudo 详解">
<meta name="twitter:description" content="&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;用 su 可以切换用户身份，如果每个普通用户都能切换到 root 身份，如果某个用户不小心泄漏了 root 密码，那么系统是非常的不安全的。为了改进这个问题，产生了 sudo 这个命令。&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;使用 sudo 执行一">



<script type="text/javascript" id="hexo.configurations">
  var NexT = window.NexT || {};
  var CONFIG = {
    root: '/',
    scheme: 'Muse',
    sidebar: {"position":"left","display":"post","offset":12,"offset_float":0,"b2t":false,"scrollpercent":false},
    fancybox: true,
    motion: true,
    duoshuo: {
      userId: '0',
      author: '博主'
    },
    algolia: {
      applicationID: '',
      apiKey: '',
      indexName: '',
      hits: {"per_page":10},
      labels: {"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}
    }
  };
</script>



  <link rel="canonical" href="https://hcldirgit.github.io/2017/09/03/1. Linux 基础/13. Linux sudo 详解/"/>





  <title>Linux sudo 详解 | 失落的乐章</title>
</head>

<body itemscope itemtype="http://schema.org/WebPage" lang="zh-Hans">

  




<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
            (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
  ga('create', '85*****1', 'auto');
  ga('send', 'pageview');
</script>


  <script type="text/javascript">
    var _hmt = _hmt || [];
    (function() {
      var hm = document.createElement("script");
      hm.src = "https://hm.baidu.com/hm.js?87980c**************99ec5e26fb5";
      var s = document.getElementsByTagName("script")[0];
      s.parentNode.insertBefore(hm, s);
    })();
  </script>











  
  
    
  

  <div class="container sidebar-position-left page-post-detail ">
    <div class="headband"></div>

    <header id="header" class="header" itemscope itemtype="http://schema.org/WPHeader">
      <div class="header-inner"><div class="site-brand-wrapper">
  <div class="site-meta ">
    

    <div class="custom-logo-site-title">
      <a href="/"  class="brand" rel="start">
        <span class="logo-line-before"><i></i></span>
        <span class="site-title">失落的乐章</span>
        <span class="logo-line-after"><i></i></span>
      </a>
    </div>
      
        <p class="site-subtitle">技术面前，永远都是学生。</p>
      
  </div>

  <div class="site-nav-toggle">
    <button>
      <span class="btn-bar"></span>
      <span class="btn-bar"></span>
      <span class="btn-bar"></span>
    </button>
  </div>
</div>

<nav class="site-nav">
  

  
    <ul id="menu" class="menu">
      
        
        <li class="menu-item menu-item-home">
          <a href="/" rel="section">
            
              <i class="menu-item-icon fa fa-fw fa-home"></i> <br />
            
            首页
          </a>
        </li>
      
        
        <li class="menu-item menu-item-categories">
          <a href="/categories" rel="section">
            
              <i class="menu-item-icon fa fa-fw fa-th"></i> <br />
            
            分类
          </a>
        </li>
      
        
        <li class="menu-item menu-item-tags">
          <a href="/tags" rel="section">
            
              <i class="menu-item-icon fa fa-fw fa-tags"></i> <br />
            
            标签
          </a>
        </li>
      
        
        <li class="menu-item menu-item-message">
          <a href="/message" rel="section">
            
              <i class="menu-item-icon fa fa-fw fa-external-link"></i> <br />
            
            留言
          </a>
        </li>
      

      
    </ul>
  

  
</nav>



 </div>
    </header>

    <main id="main" class="main">
      <div class="main-inner">
        <div class="content-wrap">
          <div id="content" class="content">
            

  <div id="posts" class="posts-expand">
    

  

  
  
  

  <article class="post post-type-normal " itemscope itemtype="http://schema.org/Article">
    <link itemprop="mainEntityOfPage" href="https://hcldirgit.github.io/2017/09/03/1. Linux 基础/13. Linux sudo 详解/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="name" content="失落的乐章">
      <meta itemprop="description" content="">
      <meta itemprop="image" content="/images/0.png">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="失落的乐章">
    </span>

    
      <header class="post-header">

        
        
          <h1 class="post-title" itemprop="name headline">Linux sudo 详解</h1>
        

        <div class="post-meta">
          <span class="post-time">
            
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              
                <span class="post-meta-item-text">发表于</span>
              
              <time title="创建于" itemprop="dateCreated datePublished" datetime="2017-09-03T01:55:11+08:00">
                2017-09-03
              </time>
            

            

            
          </span>

          

          
            
          

          
          

          

          

          

        </div>
      </header>
    

    <div class="post-body" itemprop="articleBody">

      
      

      
        <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;用 su 可以切换用户身份，如果每个普通用户都能切换到 root 身份，如果某个用户不小心泄漏了 root 密码，那么系统是非常的不安全的。为了改进这个问题，产生了 sudo 这个命令。<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;使用 sudo 执行一个 root 才能执行的命令是可以办到的，但是需要输入密码，这个密码并不是 root 的密码，而是用户自己的密码。默认只有 root 用户能使用 sudo 命令，普通用户想要使用 sudo ，是需要 root 预先设定的。使用 <code>visudo</code> 命令去编辑相关的配置文件 <code>/etc/sudoers</code> 。如果没有 visudo 这个命令，使用 yum 安装：</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">yum install -y sudo</div></pre></td></tr></table></figure>
<h2 id="语法"><a href="#语法" class="headerlink" title="语法"></a>语法</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">sudo [选项] [参数]</div></pre></td></tr></table></figure>
<h2 id="选项"><a href="#选项" class="headerlink" title="选项"></a>选项</h2><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;-b：在后台执行指令；<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;-h：显示帮助；<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;-H：将HOME环境变量设为新身份的HOME环境变量；<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;-k：结束密码的有效期限，也就是下次再执行sudo时便需要输入密码；。<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;-l：列出目前用户可执行与无法执行的指令；<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;-p：改变询问密码的提示符号；<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;-s<shell>：执行指定的shell；<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;-u&lt;用户&gt;：以指定的用户作为新的身份。若不加上此参数，则预设以root作为新的身份；<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;-v：延长密码有效期限5分钟；<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;-V ：显示版本信息。       </shell></p>
<h2 id="参数"><a href="#参数" class="headerlink" title="参数"></a>参数</h2><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;指令：需要运行的指令和对应的参数。</p>
<h2 id="配置-sudo"><a href="#配置-sudo" class="headerlink" title="配置 sudo"></a>配置 sudo</h2><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;默认 root 能够 sudo 是因为这个文件中有一行 “root    ALL=(ALL) ALL” 在该行下面加入 “test ALL=(ALL) ALL” 就可以让 test 用户拥有了 sudo 的权利。使用 “visudo” 命令编辑 /etc/sudoers 配置文件，其实操作方法和 “vim” 命令使用方法是一样的，按 “i” 进入编辑模式，编辑完成后，按 “Esc” ，再输入 “:wq” 完成保存。</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div></pre></td><td class="code"><pre><div class="line"><span class="comment">## Allow root to run any commands anywhere</span></div><div class="line">root    ALL=(ALL)       ALL</div><div class="line"><span class="built_in">test</span>    ALL=(ALL)       ALL</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;此时可以验证一下 test 账户的权限了</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div></pre></td><td class="code"><pre><div class="line">[root@localhost ~]<span class="comment"># su test</span></div><div class="line">[<span class="built_in">test</span>@localhost root]$ ls</div><div class="line">ls: 无法打开目录.: 权限不够</div><div class="line">[<span class="built_in">test</span>@localhost root]$ sudo ls</div><div class="line"></div><div class="line">We trust you have received the usual lecture from the <span class="built_in">local</span> System</div><div class="line">Administrator. It usually boils down to these three things:</div><div class="line"></div><div class="line">    <span class="comment">#1) Respect the privacy of others.</span></div><div class="line">    <span class="comment">#2) Think before you type.</span></div><div class="line">    <span class="comment">#3) With great power comes great responsibility.</span></div><div class="line"></div><div class="line">[sudo] password <span class="keyword">for</span> <span class="built_in">test</span>:</div><div class="line">123  456  789  anaconda-ks.cfg  dirb  install.log  install.log.syslog  <span class="built_in">test</span>  test1  test2  test3</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;由于切换到 test 账户后的当前目录依旧是在 /root 下， test 账户没有任何权限，所以  ‘ls’ 的时候提示说权限不够，然而使用 <code>sudo ls</code> 输入 test 账户自身的密码后就有权限了。初次使用 sudo 时会有上面的一大段提示，而后再次使用 sudo 命令则不再提示。<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;如果每增加一用户就设置一行，这样太麻烦了。所以可以这样设置。把 “#%wheel ALL=(ALL) ALL” 前面 ‘#’ 去掉，让这一行生效。意思是， wheel 这个组的所有用户都拥有了 sudo 权利。接下来只需要把想让 sudo 权利的所有用户加入到 wheel 这个组中即可：</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div></pre></td><td class="code"><pre><div class="line"><span class="comment">## Allows people in group wheel to run all commands</span></div><div class="line">%wheel  ALL=(ALL)       ALL</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;配置文件 /etc/sudoers 包含了诸多配置项，可以使用 <code>man sudoers</code> 来获得帮助信息。    </p>
<h2 id="实例"><a href="#实例" class="headerlink" title="实例"></a>实例</h2><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;配置 sudo 必须通过编辑 <code>/etc/sudoers</code> 文件，而且只有超级用户才可以修改它，还必须使用 visudo 编辑。之所以使用 visudo 有两个原因：       </p>
<ol>
<li>它能后防止一两个用户同时修改它；    </li>
<li>它也能进行有限的语法检查。  </li>
</ol>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;所以，即时只有一个超级用户，也最好用 visudo 来检查一下语法。</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;visudo 默认的是在 vi 里打开配置文件，用 vi 来修改文件。可以在编译时修改这个默认项。 visudo 不会擅自保存带有语法错误的配置文件，它会提示出现的问题，并询问该如何处理：</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">&gt;&gt;&gt; sudoers file: syntax error, line 22 &lt;&lt;</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;此时有三种选择：   </p>
<ol>
<li>键入 “e” 是重新编辑</li>
<li>键入 “x” 是不保存退出</li>
<li>键入 “Q” 是退出并保存       </li>
</ol>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;如果选择 Q ,那么 sudo 将不回再运行，知道错误被纠正。<br>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;需求是把 Linux 服务器设置成：只允许使用普通账户登录，而普通账户登录后，可以不输入密码就能 sudo 切换到 root 账户。</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">[root@localhost ~]<span class="comment"># visudo</span></div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;然后在文件的最后面加三行：</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div></pre></td><td class="code"><pre><div class="line">User_Alias USER_SU = <span class="built_in">test</span>, test1, yanyi</div><div class="line">Cmnd_Alias SU = /bin/su</div><div class="line">USER_SU ALL=(ALL) NOPASSWD: SU</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;保存配置文件后，使用 test 、test1 、yanyi 三个账户登录 Linux 后，执行命令 <code>sudo su -</code> 切换到 root 账户，获取 root 账户的所有权利。</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div></pre></td><td class="code"><pre><div class="line">[root@localhost ~]<span class="comment"># su - test</span></div><div class="line">[<span class="built_in">test</span>@localhost ~]$ sudo su -</div><div class="line">[root@localhost ~]<span class="comment"># whoami</span></div><div class="line">root</div></pre></td></tr></table></figure>
<h2 id="日志与安全"><a href="#日志与安全" class="headerlink" title="日志与安全"></a>日志与安全</h2><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;sudo 为安全考虑得很周到，不仅可以记录日志，还能在有必要时向系统管理员报告。但是， sudo 的日志功能不是自动的，必须由管理员开启。</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div></pre></td><td class="code"><pre><div class="line">touch /var/<span class="built_in">log</span>/sudo</div><div class="line">vi /etc/syslog.conf</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;在 syslog.conf 最后面加一行（必须用 tab 分隔开）并保存：</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">local2.debug    /var/<span class="built_in">log</span>/sudo</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;重启日志守候进程</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">ps aux | grep syslogd</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;把得到的 syslog 进程的 PID (输出的第二列是 PID)填入下面</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line"><span class="built_in">kill</span> -HUP PID</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;这样 sudo 就可以写日志了：</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div></pre></td><td class="code"><pre><div class="line">[foobar@localhost ~]$ sudo ls /rootanaconda-ks.cfg </div><div class="line">Desktop install.log </div><div class="line">install.log.syslog </div><div class="line"><span class="variable">$cat</span> /var/<span class="built_in">log</span>/sudoJul 28 22:52:54 localhost sudo: foobar : </div><div class="line">TTY=pts/1 ; <span class="built_in">pwd</span>=/home/foobar ; USER=root ; <span class="built_in">command</span>=/bin/ls /root</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;不过，有个小小的“缺陷”，sudo 记录日志并不是很忠实：</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div></pre></td><td class="code"><pre><div class="line">[foobar@localhost ~]$ sudo cat /etc/shadow &gt; /dev/null</div><div class="line">cat /var/<span class="built_in">log</span>/sudo...Jul 28 23:10:24 localhost sudo: foobar : TTY=pts/1 ;</div><div class="line">PWD=/home/foobar ; USER=root ; COMMAND=/bin/cat /etc/shadow</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;重定向没有被记录在日志里，因为在命令运行之前，shell 把重定向的工作做完了，sudo 根本就没有看到重定向。这样也有个好处，下面的手段不回得逞：</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><div class="line">1</div></pre></td><td class="code"><pre><div class="line">[foobar@localhost ~]$ sudo ls /root &gt; /etc/shadowbash: /etc/shadow: 权限不够</div></pre></td></tr></table></figure>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;sudo 有自己的方式来保护安全。以 root 的身份执行 <code>sudo -v</code> ，查看 sudo 的设置。因为考虑到安全问题，一部分环境变量并没有传递给 sudo 后面的命令，或者被检查后再传递的，比如：PATH 、HOME 、SHELL 等。当然也可以通过 sudoers 来配置环境变量。</p>
<h2 id="sudo-i-也可以登录到-root"><a href="#sudo-i-也可以登录到-root" class="headerlink" title="sudo -i 也可以登录到 root"></a>sudo -i 也可以登录到 root</h2><p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;sudo : 暂时切换到超级用户模式以执行超级用户权限，提示输入密码时该密码为当前用户的密码，而不是超级账户的密码。不过有时间限制，Ubuntu默认为一次时长15分钟。</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;su ： 切换到某某用户模式，提示输入密码时该密码为切换后账户的密码，用法为“su 账户名称”。如果后面不加账户时系统默认为root账户，密码也为超级账户的密码。没有时间限制。</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;sudo -i: 为了频繁的执行某些只有超级用户才能执行的权限，而不用每次输入密码，可以使用该命令。提示输入密码时该密码为当前账户的密码。没有时间限制。执行该命令后提示符变为“#”而不是“$”。想退回普通账户时可以执行“exit”或“logout” 。</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;还有几个类似的用法：</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;sudo /bin/bash   ： 这个命令也会切换到root的bash下，但不能完全拥有root的所有环境变量，比如PATH，可以拥有root用户的权限。这个命令和 sudo -s 是等同的。</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;sudo -s : 如上</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;sudo su  ： 这个命令，也是登录到了root，但是并没有切换root的环境变量，比如PATH。</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;sudo su - :  这个命令，纯粹的切换到root环境下，可以这样理解，先是切换到了root身份，然后又以root身份执行了 su - ，这个时候跟使用root登录没有什么区别。这个结果貌似跟sudo -i 的效果是一样的，但是也有不同，sudo 只是临时拥有了root的权限，而su则是使用root账号登录了linux系统。</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;所以，我们再来总结一下：    </p>
<ol>
<li>sudo su -  约等于  sudo -i</li>
<li>sudo -s  完全等于  sudo  /bin/bash  约等于 sudo su</li>
<li>sudo 终究被一个”临时权限的帽子”扣住，不能等价于纯粹的登录到系统里。</li>
</ol>

      
    </div>

    <div>
      
        

      
    </div>

    <div>
      
        

      
    </div>

    <div>
      
        

      
    </div>

    <footer class="post-footer">
      
        <div class="post-tags">
          
            <a href="/tags/Linux/" rel="tag"># Linux</a>
          
        </div>
      

      
      
      

      
        <div class="post-nav">
          <div class="post-nav-next post-nav-item">
            
              <a href="/2017/09/03/1. Linux 基础/2. Linux 安装/" rel="next" title="安装 CentOS">
                <i class="fa fa-chevron-left"></i> 安装 CentOS
              </a>
            
          </div>

          <span class="post-nav-divider"></span>

          <div class="post-nav-prev post-nav-item">
            
              <a href="/2017/09/03/1. Linux 基础/56. Linux下的几个网络连接状态具体含义/" rel="prev" title="Linux下的几个网络连接状态具体含义">
                Linux下的几个网络连接状态具体含义 <i class="fa fa-chevron-right"></i>
              </a>
            
          </div>
        </div>
      

      
      
    </footer>
  </article>



    <div class="post-spread">
      
    </div>
  </div>


          </div>
          


          
  <div class="comments" id="comments">
    
  </div>


        </div>
        
          
  
  <div class="sidebar-toggle">
    <div class="sidebar-toggle-line-wrap">
      <span class="sidebar-toggle-line sidebar-toggle-line-first"></span>
      <span class="sidebar-toggle-line sidebar-toggle-line-middle"></span>
      <span class="sidebar-toggle-line sidebar-toggle-line-last"></span>
    </div>
  </div>

  <aside id="sidebar" class="sidebar">
    <div class="sidebar-inner">

      

      
        <ul class="sidebar-nav motion-element">
          <li class="sidebar-nav-toc sidebar-nav-active" data-target="post-toc-wrap" >
            文章目录
          </li>
          <li class="sidebar-nav-overview" data-target="site-overview">
            站点概览
          </li>
        </ul>
      

      <section class="site-overview sidebar-panel">
        <div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
          <img class="site-author-image" itemprop="image"
               src="/images/0.png"
               alt="失落的乐章" />
          <p class="site-author-name" itemprop="name">失落的乐章</p>
           
              <p class="site-description motion-element" itemprop="description">失落的乐章的Blog</p>
          
        </div>
        <nav class="site-state motion-element">

          
            <div class="site-state-item site-state-posts">
              <a href="/">
                <span class="site-state-item-count">627</span>
                <span class="site-state-item-name">日志</span>
              </a>
            </div>
          

          

          
            
            
            <div class="site-state-item site-state-tags">
              <a href="/tags/index.html">
                <span class="site-state-item-count">38</span>
                <span class="site-state-item-name">标签</span>
              </a>
            </div>
          

        </nav>

        

        <div class="links-of-author motion-element">
          
            
              <span class="links-of-author-item">
                <a href="https://github.com/hcldirgit" target="_blank" title="GitHub">
                  
                    <i class="fa fa-fw fa-github"></i>
                  
                  GitHub
                </a>
              </span>
            
          
        </div>

        
        

        
        

        


      </section>

      
      <!--noindex-->
        <section class="post-toc-wrap motion-element sidebar-panel sidebar-panel-active">
          <div class="post-toc">

            
              
            

            
              <div class="post-toc-content"><ol class="nav"><li class="nav-item nav-level-2"><a class="nav-link" href="#语法"><span class="nav-number">1.</span> <span class="nav-text">语法</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#选项"><span class="nav-number">2.</span> <span class="nav-text">选项</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#参数"><span class="nav-number">3.</span> <span class="nav-text">参数</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#配置-sudo"><span class="nav-number">4.</span> <span class="nav-text">配置 sudo</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#实例"><span class="nav-number">5.</span> <span class="nav-text">实例</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#日志与安全"><span class="nav-number">6.</span> <span class="nav-text">日志与安全</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#sudo-i-也可以登录到-root"><span class="nav-number">7.</span> <span class="nav-text">sudo -i 也可以登录到 root</span></a></li></ol></div>
            

          </div>
        </section>
      <!--/noindex-->
      

      

    </div>
  </aside>


        
      </div>
    </main>

    <footer id="footer" class="footer">
      <div class="footer-inner">
        <div class="copyright" >
  
  &copy; 
  <span itemprop="copyrightYear">2017</span>
  <span class="with-love">
    <i class="fa fa-heart"></i>
  </span>
  <span class="author" itemprop="copyrightHolder">失落的乐章</span>
</div>


<div class="powered-by">
  由 <a class="theme-link" href="https://hexo.io">Hexo</a> 强力驱动
</div>

<div class="theme-info">
  主题 -
  <a class="theme-link" href="https://github.com/iissnan/hexo-theme-next">
    NexT.Muse
  </a>
</div>


        

        
      </div>
    </footer>

    
      <div class="back-to-top">
        <i class="fa fa-arrow-up"></i>
        
      </div>
    

  </div>

  

<script type="text/javascript">
  if (Object.prototype.toString.call(window.Promise) !== '[object Function]') {
    window.Promise = null;
  }
</script>









  












  
  <script type="text/javascript" src="/lib/jquery/index.js?v=2.1.3"></script>

  
  <script type="text/javascript" src="/lib/fastclick/lib/fastclick.min.js?v=1.0.6"></script>

  
  <script type="text/javascript" src="/lib/jquery_lazyload/jquery.lazyload.js?v=1.9.7"></script>

  
  <script type="text/javascript" src="/lib/velocity/velocity.min.js?v=1.2.1"></script>

  
  <script type="text/javascript" src="/lib/velocity/velocity.ui.min.js?v=1.2.1"></script>

  
  <script type="text/javascript" src="/lib/fancybox/source/jquery.fancybox.pack.js?v=2.1.5"></script>


  


  <script type="text/javascript" src="/js/src/utils.js?v=5.1.1"></script>

  <script type="text/javascript" src="/js/src/motion.js?v=5.1.1"></script>



  
  

  
  <script type="text/javascript" src="/js/src/scrollspy.js?v=5.1.1"></script>
<script type="text/javascript" src="/js/src/post-details.js?v=5.1.1"></script>



  


  <script type="text/javascript" src="/js/src/bootstrap.js?v=5.1.1"></script>



  


  




	





  





  





  






  





  

  

  

  

  

  

</body>
</html>
